BCPL - Basic Combined Programming Language

Il BCPL acronimo di Basic Combined Programming Language è un linguaggio di programmazione sviluppato da Martin Richards dell'Università di Cambridge dal 1966, in seguito alle difficoltà che aveva incontrato nell'utilizzo del suo predecessore, il CPL.


Martins Richards Martin Richards riconosciuto nei Computer Pioneer Award for pioneering system software portability through the programming language BCPL, widely influential and used in academia and industry for a variety of prominent system software applications.


Il primo compilatore venne implementato mentre Richards si trovava al MIT, nella primavera del 1967. Il linguaggio venne presentato per la prima volta al 1969 durante la "Spring Joint Computer Conference". L'architettura del BCPL influenzò pesantemente il linguaggio B, da cui Dennis Ritchie in seguito sviluppò il linguaggio C.
Le caratteristiche di pulizia, potenza e portabilità resero semplice la realizzazione di compilatori compatti (si vocifera che alcuni compilatori potessero funzionare anche con soli 16 KB di memoria). Alcuni sistemi operativi vennero scritti, completamente o in parte, utilizzando BCPL come per esempio TRIPOS o AmigaOS. La principale caratteristica che rendeva il compilatore particolarmente portabile risiedeva nel fatto che era logicamente diviso in due parti: la prima parte (frontend) si occupava di analizzare il codice sorgente e di generare un codice intermedio (O-code) per una macchina virtuale, la seconda (backend) traduceva l'O-code nel codice per la CPU bersaglio, su cui il programma doveva girare. In questo maniera, quando era necessario scrivere un compilatore per una nuova CPU, era sufficiente riscrivere il backend. Questa tecnica divenne in seguito molto comune, ma il BCPL fu il primo linguaggio a specificare una macchina virtuale a questo scopo.
Il linguaggio si caratterizza per avere un unico tipo di dati, il tipo word definito da un numero fisso di byte, di solito scelto per allinearsi con la parola della macchina. L'interpretazione del dato veniva fatta in base al tipo di operatori utilizzati: ad esempio, utilizzando il segno di addizione +, i dati venivano sommati come se si trattasse di numeri interi, mentre l'operatore ! di dereferenziazione trattava i dati come puntatori. Allo scopo di rendere le cose più semplici, l'implementazione del BCPL non prevedeva il type checking.
Nel 1979 esistevano implementazioni di BCPL per almeno 25 diverse architetture, oggi il BCPL è stato interamente soppiantato dal C.
La filosofia del BCPL può essere riassunta in queste righe, liberamente tradotte dal libro BCPL, the language and its compiler: La filosofia del BCPL non è quella del tiranno che pensa di sapere come vanno fatte le cose e detta ciò che è permesso e ciò che non lo è: piuttosto il BCPL è un servo che offre i suoi servigi al meglio delle sue possibilità, senza lamentarsi, anche quando si trova di fronte ad un'apparente contraddizione. Si assume che il programmatore sappia sempre quello che sta facendo: egli non è costretto a sottostare a rigidi vincoli.


Capitolo Precedente | Indice | Capitolo Successivo

Valid XHTML 1.1 Valid CSS!

Un rigraziamento a Guido Zuccon